﻿namespace SmartHealthCare.Utils
{
   interface IPasswordManager
   {
      bool EnablePasswordReset(string application);
      bool EnablePasswordRetrieval(string application);
      string GeneratePassword(string application,int length,int numberOfNonAlphanumericCharacters);
      int GetMaxInvalidPasswordAttempts(string application);
      int GetMinRequiredNonAlphanumericCharacters(string application);
      int GetMinRequiredPasswordLength(string application);
      int GetPasswordAttemptWindow(string application);
      string GetPasswordStrengthRegularExpression(string application);
      bool RequiresQuestionAndAnswer(string application);

      string ResetPassword(string application,string userName);
      string ResetPasswordWithQuestionAndAnswer(string application,string userName,string passwordAnswer);
      string GetPassword(string application,string userName,string passwordAnswer);
      string GetPasswordQuestion(string application,string userName);
      void ChangePassword(string application,string userName,string newPassword);
      void ChangePasswordWithAnswer(string application,string userName,string passwordAnswer,string newPassword);
   }
}
